# part1 基础部分

"""
'''
basic -3 字母图形

问题描述
利用字母可以组成一些美丽的图形，下面给出了一个例子：
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
这是一个5行7列的图形，请找出这个图形的规律，并输出一个n行m列的图形。

输入格式
输入一行，包含两个整数n和m，分别表示你要输出的图形的行数的列数。
输出格式
输出n行，每个m个字符，为你的图形。
样例输入
5 7
样例输出
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
'''
m, n = map(int, input().split(' '))
str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
list1 = list(str1)
for i in range(m):
    if i == 0:
        print(str1[:n])
    else:
        str1 = list1[i] + str1
        print(str1[:n])
"""

"""
'''
basic -4 数列特征

问题描述
给出n个数，找出这n个数的最大值，最小值，和。

输入格式
第一行为整数n，表示数的个数。
第二行有n个数，为给定的n个数，每个数的绝对值都小于10000。
输出格式
输出三行，每行一个整数。第一行表示这些数中的最大值，第二行表示这些数中的最小值，第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
'''

n = int(input())
list1 = list(map(int, input().split()))
print(max(list1))
print(min(list1))
print(sum(list1))


n=int(input())
lists=list(map(int,input().split()))
max=min=lists[0]
sum=0
for i in range(len(lists)):
    if lists[i]>max:
        max=lists[i]
    if lists[i]<min:
        min=lists[i]
    sum+=lists[i]
print(max)
print(min)
print(sum)

"""

"""
'''
basic -5 查找整数
     
问题描述
给出一个包含n个整数的数列，问整数a在数列中的第一次出现是第几个。

输入格式
第一行包含一个整数n。
第二行包含n个非负整数，为给定的数列，数列中的每个数都不大于10000。
第三行包含一个整数a，为待查找的数。
输出格式
如果a在数列中出现了，输出它第一次出现的位置(位置从1开始编号)，否则输出-1。

样例输入
6
1 9 4 8 3 9
9
样例输出
2
'''
n = int(input())
list1 = list(map(int, input().split()))
a = int(input())
if a in list1:
    print(list1.index(a) + 1)
else:
    print(-1)
"""

'''
basic -6 杨辉三角形
     
问题描述
杨辉三角形又称Pascal三角形，它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是：三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行：
   1　
  1 1　
 1 2 1　
1 3 3 1　
给出n，输出它的前n行。
输入格式
输入包含一个数n。
输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出，中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
'''
# 【【python3】基础练习[打印三角形,杨辉三角,猜数字游戏]】
# https://www.bilibili.com/video/BV1y7411g7nS?p=2&vd_source=74f5255ceb17004e46658ef3a8c7ab53
# 运行超时
def digui(n):
    result = []
    for i in range(n):
        row = []  #行
        for j in range(i+1): # i+1表示该行有几个数字
            now_number = get_number(i ,j)
            row.append(now_number) # 该行
        result.append(row)    # 整个表
    return result
def get_number(i, j):
    if j == 0 or i == j:
        return 1
    else:
        return get_number(i-1, j-1) + get_number(i-1, j)
n = int(input())
res = digui(n)
# for i in res:
#     print(i)
# 逐行打印列表中的元素，而不是打印整个列表。
for i in res:
    for num in i:
        print(num, end=" ")
    print()




n = int(input())
list1 = [[0 for i in range(n)] for i in range(n)]
for i in range(n):
    list1[i][0]=1
    list1[i][i]=1
for i in range(n):
    for j in range(i):
        list1[i][j] = list1[i-1][j] + list1[i-1][j-1]

for i in range(n):
    for j in range(i+1):
        print(list1[i][j],end=' ')
    print()



















